<?php

/**
* class function chứa các hàm xử lý
*/
class Functions
{

	public function __construct(){
	}// End function __construct
	/**
	* function validateDate 	kiểm tra xem ngày tháng có đúng không
	* param $date 				chuỗi ngày tháng
	* param $format 			là định dạng ngày tháng mặc định là 'd/m/y'
	* return 					true or false
	* how to use				var_dump(validateDate('28/03/1990', 'd/m/Y'));
	*/
	public function validateDate($date, $format = 'd/m/Y')
	{
	    $d = DateTime::createFromFormat($format, $date);
	    return $d && $d->format($format) == $date;
	}//end function

	/**
	* function validate_Email 	kiểm tra xem email có đúng không
	* param $value 				chuỗi email
	* return 					true or false
	* how to use				validate_Email('leminh2803@gmail.com');
	*/
	public function validate_Email($value){
		if(filter_var(trim($value), FILTER_VALIDATE_EMAIL)){
			return strip_tags(trim($value));
		}else{
			return false;
		}
	}//end function
	/**
	* function the_excerpt 			Cat chu~ de hien thi thanh doan van ngan.
	* param $text 					chuỗi
	* param $string 				số ký tự
	* return 						text
	*/
    function the_excerpt($text, $string = 400) {
    	mb_internal_encoding("UTF-8");
        if(strlen($text) > $string) {
            $cutString = mb_substr($text,0,$string,'UTF-8');
            return $cutString . ' ...';
        } else {
            return $text;
        }
       
    } // End the_excerpt
	/**
	* function validate_input_text 	kiểm tra xem text người dùng nhập có đúng không
	* param $validate 				điều kiện kiểm tra
	* param $value 					text cần kiểm tra
	* return 						true or false
	* how to use					alidate_input_text('/^[\w\'.-]{2,20}$/i','abcdef');
	* '/^[\w\'.-]{2,20}$/i'			Chuỗi điều kiện
	*/
	public function validate_input_text($validate,$value){
		if(preg_match($validate, trim($value))){
			return strip_tags(trim($value));
		}else{
			return false;
		}
	}// end function

	/**
	* function send_email 			Thực hiện việc send email thông qua email được cài đặt sẵn trong file config
	* param $to 					Địa chỉ email cần gửi
	* param $from 					Từ ai
	* param $from_name 				Đến ai
	* param $subject 				tiêu đề
	* param $body 					Nội dung
	* return 						true or false
	* how to use					send_email('leminh2803@gmail.com','Admin WWG','Minh Le','kick hoat tai khoan WWG','Kick hoat ');
	*/
	public function send_email ($to,$from,$from_name,$subject,$body){

		$mail = new PHPMailer();  // create a new object
		$mail->IsSMTP(); // enable SMTP
		$mail->SMTPDebug = 0;  // debugging: 1 = errors and messages, 2 = messages only
		$mail->SMTPAuth = true;  // authentication enabled
		$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
		$mail->Host = 'smtp.gmail.com';
		$mail->Port = 465;
		$mail->Username = GUSER;
		$mail->Password = GPWD;
		$mail->SetFrom($from, $from_name);
		$mail->Subject = $subject;
		$mail->Body = $body;
		$mail->AddAddress($to);
		if(!$mail->Send()) {
			return true;
		} else {
			return false;
		}
	}//End function

	// Function validate URl Thực hiện việc kiểm tra URL website người dùng nhập có đúng hay không.
	public function validate_url($url)
	{
		if(filter_var($url, FILTER_VALIDATE_URL))
	  	{
		  return strip_tags(trim($url));
	  	}
		else
	  	{
		  return false;
	  	}
	}//End Function

	//Function Validate UploadIMG Thực hiện kiểm tra IMG có đúng định dạng, Size, Trùng lặp hay không đồng thời hiển thị các thông tin liên quan đến IMG

	public function validate_uploadIMG($item)
	{
		$allowedExts = array("gif", "jpeg", "jpg", "png","x-png","pjpeg");
		$temp = explode(".", $item["name"]);
		$extension = strtolower(end($temp));
		
		if( ($item["size"] < 1024000) && in_array($extension, $allowedExts) ) 
		{
		  	if ($item["error"] > 0) {
			    echo "Return Code: " . $item["error"] . "<br>";
			    return false;
		  	} else {
			    echo "Upload: "		 . $item["name"] . "<br>";
			    echo "Type: " 		 . $item["type"] . "<br>";
			    echo "Size: "		 . ($item["size"] / 1024) . " kB<br>";
			    echo "Temp file: " 	 . $item["tmp_name"] . "<br>";
			    echo "Stored in:   " . "public/img/" . $item["name"]."</br>";
			    return true;
		  	}
		  	if (file_exists("public/img/" . $item["name"])) {
		  	  	echo "This File: " 	 . $item["name"] . " ALREADY EXISTS . "."<br>";
		  	  	return false;
		  	}
		} else {
	  		echo "Invalid file";
	  		return false;
		}
	}

	public function crop_avatar ($item)
	{
		$allowedExts = array("gif", "jpeg", "jpg", "png","x-png","pjpeg");
		$temp = explode(".", $item["name"]);
		$extension = strtolower(end($temp));
		
		if( ($item["size"] < 1024000) && in_array($extension, $allowedExts) ) 
		{
		  	if ($item["error"] > 0) {
			    echo "Return Code: " . $item["error"] . "<br>";
			    return false;
		  	} else {
			    echo "Upload: "		 . $item["name"] . "<br>";
			    echo "Type: " 		 . $item["type"] . "<br>";
			    echo "Size: "		 . ($item["size"] / 1024) . " kB<br>";
			    echo "Temp file: " 	 . $item["tmp_name"] . "<br>";
			    echo "Stored in:   " . "public/img/" . $item["name"]."</br>";
			    return true;
		  	}
		  	if (file_exists("public/img/" . $item["name"])) {
		  	  	echo "This File: " 	 . $item["name"] . " ALREADY EXISTS . "."<br>";
		  	  	return false;
		  	}
		} else {
	  		echo "Invalid file";
	  		return false;
		}
	}

	public function convert_date ($_date) {
		$_date = date("Y-m-d", strtotime($_date));
		return $_date;
	}
	
}//End Class
?>